package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TCloudRole;
import persistent.dao.CloudRoleDAO;

/**
 * 角色业务类接口的实现
 * @author djf
 * @since 2018/9/26
 */
public class CloudRoleImpl implements CloudRoleDAO {

	private HibBaseDAO dao=null;
	
	public CloudRoleImpl() {
		super();
		dao=new HibBaseDAO();
	}

	/**
	 * 添加一个角色信息
	 * @param tRole 角色信息对象
	 * @return 成功返回角色主键，失败返回0
	 */
	@Override
	public int addRole(TCloudRole tRole) {
		String procname="up_cloud_addRole(?,?,?,?)";
		Object para[]={tRole.getName(), tRole.getDescription(), tRole.getParentid(), tRole.getSchoolid()};
		return (Integer)dao.executeProduce(procname, para);
	}

	/**
	 * 修改一个角色信息
	 * @param tRole 角色信息对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean updateRole(TCloudRole tRole) {
		TCloudRole cloudrole2 = (TCloudRole)dao.findById(TCloudRole.class, tRole.getId());
		cloudrole2.setName(tRole.getName());
		cloudrole2.setDescription(tRole.getDescription());
		cloudrole2.setDeepth(tRole.getDeepth());
		cloudrole2.setParentid(tRole.getParentid());
		cloudrole2.setStatus(tRole.getStatus());
		return dao.update(cloudrole2);
	}

	/**
	 * 删除一个角色信息(真删除，谨慎操作)
	 * @param roleid 角色信息编号
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteRole(int roleid) {
		return dao.delete(TCloudRole.class,roleid);
	}

	/**
	 * 启用一个角色，0代表停用，1代表启用
	 * @param roleid 角色信息编号
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean enable(int roleid) {
		TCloudRole cloudrole=(TCloudRole)dao.findById(TCloudRole.class, roleid);
		cloudrole.setStatus("启用");
		return dao.update(cloudrole);
	}

	/**
	 * 停用一个角色,0代表停用，1代表启用
	 * @param roleid 角色信息编号
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean disEnable(int roleid) {
		TCloudRole cloudrole=(TCloudRole)dao.findById(TCloudRole.class, roleid);
		cloudrole.setStatus("停用");
		return dao.update(cloudrole);
	}

	/**
	 * 根据条件查询角色信息
	 * @param strWhere 查询条件
	 * @return 成功返回List的角色信息列表，失败返回null
	 */
	@Override
	public List<TCloudRole> getRoleListByStrWhere(String strWhere) {
		String hql="from TCloudRole "+strWhere;
		return dao.select(hql);
	}

	/**
	 * 根据条件分页查询角色信息
	 * @param strWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回List的角色信息列表，失败返回null
	 */
	@Override
	public List<TCloudRole> getRoleListByStrWherePage(String strWhere,
			int currentPage, int pageSize) {
		String hql="from TCloudRole "+strWhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

	/**
	 * 根据角色编号得到一条角色信息
	 * @param roleid 角色编号
	 * @return 成功返回TCloudRole的角色信息，失败返回null
	 */
	@Override
	public TCloudRole getACloudRole(int roleid) {
		return (TCloudRole)dao.findById(TCloudRole.class, roleid);
	}

}
